package lib.gameEngine.core{
	
	
	/**
	 * 控制器基类
	 * 
	 * 控制器拥有如下功能：
	 * 
	 * 1、注册、发送通知
	 * 2、注册，获取，删除控制器
	 * 3、注册，获取，删除模型
	 * 4、注册，获取，删除视图
	 * 
	 * 
	 *  
	 * @author Sunix
	 * 
	 * 
	 *  @example 查看示例
	 * 
	 * <listing version="3.0"> 
	 * 
	 * 
	 * package game.controller{
	
		import flash.display.Sprite;
		
		import game.view.world.World;
	
		import gameEngine.core.Controller;
	 * 
	 *
		public class Load extends Controller	{
		  
				public function Load(){
					super("load");  //为本控制器命名
				}
				
				override protected function registerNotify():void{  //覆写父类方法，监听通知
					this.addNotify("loadNotify",onLoad); //监听到loadNotify通知
				}				
				
				private function onLoad(notify:Notification):void{   //此处需要注意处理通知事件的函数式带有参数的，类型为Notification
					trace('执行加载完毕');  //具体的加载内容在此处忽略
					sendNotify(new Notification("world_init"));  //发送游戏世界初始化通知，此处应该判断监听该事件的控制器或者视图是否已注册，方法如下：
					 
					//if(!this.getView("world"))  //如果名为world的视图没有被注册，那么需要调用以下的命令进行注册
					//	this.registerView(new World());	  //执行注册
					//this.sendNotify(new Notification(NotificationName.WORLD_INIT));   //注册完毕后，发送世界初始化的通知
					   
					
				}
			}
		}

	 * </listing> 
	 * 
	 */	
	public class Controller extends Core{

		/**
		 * 构造函数
		 * 
		 *  
		 * @param name 控制器名称
		 * 
		 */		
		public function Controller(name:String){
			super(name);
		}
	}
}